package com.zx.system.block.vo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * <p>
 * description: 路由元信息视图 <br>
 * create: 2024-09-07 20:40
 * </p>
 *
 * @author zhou  xun
 */
@AllArgsConstructor
@NoArgsConstructor
@Data
public class MetaVO implements Serializable {

    /**
     * 是否在侧边栏隐藏（0显示 1隐藏)
     */
    private boolean hidden;

    /**
     * 隐藏说明
     */
    private String hiddenDesc;

    /**
     * 组件名称,用于支持keep-alive缓存
     */
    private String componentName;

    /**
     * 是否始终显示根菜单(1显示 0不显示)
     * 当项目有多个子路由时，会变成嵌套模式，否则不显示根菜单
     */
    private boolean alwaysShow;

    /**
     * 展示说明
     */
    private String alwaysShowDesc;

    /**
     * 侧边栏和面包屑中显示的名称
     */
    private String title;

    /**
     * 侧边栏中显示的图标
     */
    private String icon;

    /**
     * 如果设置为true，页面将被缓存（0不缓存 1缓存)控制前端vue keepAlive内置组件
     */
    private boolean componentCache;

    /**
     * 注解缓存
     */
    private String componentCacheDesc;

    /**
     * 如果设置为true，标签将附加在标签视图中
     */
    private boolean affix;

    /**
     * 附加说明
     */
    private String affixDesc;

    /**
     * 如果设置为false，该项目将隐藏在breadcrumb中（默认为true）
     */
    private boolean breadcrumb;

    /**
     * 面包屑说明
     */
    private String breadcrumbDesc;

    /**
     * 如果设置路径，侧边栏会突出显示您设置的路径(例: '/example/list')
     */
    private String activeMenu;

    /**
     * 外部链接地址
     */
    private String href;

    //-----用于处理路由嵌套----
    /**
     * 菜单ID
     */
    private String id;
    /**
     * 父菜单ID
     */
    private String parentId;
}
